package com.share.device.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.share.device.domain.WorkOrder;
import com.share.device.domain.vo.WorkOrderVO;

/**
 * 工单信息Mapper
 * 
 * @author          
 * @date 2025-06-29
 */
public interface WorkOrderMapper extends BaseMapper<WorkOrder>
{
    /**
     * 查询工单信息
     * 
     * @param orderId 工单信息主键
     * @return 工单信息
     */
    public WorkOrder selectWorkOrderById(Integer orderId);

    /**
     * 查询工单信息列表
     *
     * @param workOrder 工单信息
     * @return 工单信息集合
     */
    public List<WorkOrderVO> selectWorkOrderList(WorkOrder workOrder);

    /**
     * 新增工单信息
     * 
     * @param workOrder 工单信息
     * @return 结果
     */
    public int insertWorkOrder(WorkOrder workOrder);

    /**
     * 修改工单信息
     * 
     * @param workOrder 工单信息
     * @return 结果
     */
    public int updateWorkOrder(WorkOrder workOrder);

    /**
     * 删除工单信息
     * 
     * @param orderId 工单信息主键
     * @return 结果
     */
    public int deleteWorkOrderById(Integer orderId);

    /**
     * 批量删除工单信息
     * 
     * @param orderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWorkOrderByIds(Integer[] orderIds);

    /**
     * 查询工单详细信息（包含关联信息）
     * 
     * @param orderId 工单信息主键
     * @return 工单信息
     */
    public WorkOrder selectWorkOrderDetailById(Integer orderId);

    /**
     * 根据状态查询工单列表
     * 
     * @param status 工单状态
     * @return 工单信息集合
     */
    public List<WorkOrder> selectWorkOrderListByStatus(String status);

    /**
     * 根据处理人查询工单列表
     * 
     * @param assigneeId 处理人ID
     * @return 工单信息集合
     */
    public List<WorkOrder> selectWorkOrderListByAssignee(Integer assigneeId);

    /**
     * 根据设备ID查询工单列表
     * 
     * @param deviceId 设备ID
     * @return 工单信息集合
     */
    public List<WorkOrder> selectWorkOrderListByDevice(Integer deviceId);
} 